package infb.modelo;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;


@Entity
@Table(name = "CITAS")
@NamedQueries({@NamedQuery(name = "Citas.findAll", query = "SELECT c FROM Citas c"), @NamedQuery(name = "Citas.findById", query = "SELECT c FROM Citas c WHERE c.id = :id"), @NamedQuery(name = "Citas.findByFechaSolicitud", query = "SELECT c FROM Citas c WHERE c.fechaSolicitud = :fechaSolicitud"), @NamedQuery(name = "Citas.findByFechaFinalizacion", query = "SELECT c FROM Citas c WHERE c.fechaFinalizacion = :fechaFinalizacion"), @NamedQuery(name = "Citas.findByEstado", query = "SELECT c FROM Citas c WHERE c.estado = :estado"), @NamedQuery(name = "Citas.findByObservaciones", query = "SELECT c FROM Citas c WHERE c.observaciones = :observaciones"), @NamedQuery(name = "Citas.findByPaciente", query = "SELECT c FROM Citas c WHERE c.paciente = :paciente")})
@SequenceGenerator(name="secuencia_citas",sequenceName="SECUENCIA_CITAS",allocationSize=1)
public class Citas implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID")
    @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="secuencia_citas")
    private Long id;
    @Column(name = "FECHA_SOLICITUD")
    @Temporal(TemporalType.DATE)
    private Date fechaSolicitud;
    @Column(name = "FECHA_FINALIZACION")
    @Temporal(TemporalType.DATE)
    private Date fechaFinalizacion;
    @Column(name = "HORA_FINALIZACION")
    private String horaFinalizacion;
    @Column(name = "ESTADO")
    private String estado;
    @Column(name = "OBSERVACIONES")
    private String observaciones;
    @Basic(optional = false)
    @Column(name = "PACIENTE")
    private String paciente;
    @JoinColumn(name = "MEDICO", referencedColumnName = "DNI")
    @ManyToOne(optional = false)
    private Medicos medico;

    public Citas() {
    }
          
    public Citas(Date fechaSolicitud, Date fechaFinalizacion, String estado,String observaciones, Medicos medico,   String paciente, String horaFinalizacion) {
        this.fechaSolicitud = fechaSolicitud;
        this.fechaFinalizacion = fechaFinalizacion;
        this.horaFinalizacion = horaFinalizacion;
        this.estado = estado;
        this.observaciones = observaciones;
        this.paciente = paciente;
        this.medico = medico;
    }

    

    public Citas(Long id) {
        this.id = id;
    }

    public Citas(Long id, String paciente) {
        this.id = id;
        this.paciente = paciente;
    }

    public Long getId() {
        return id;
    }

    public void setHoraFinalizacion(String horaFinalizacion) {
        this.horaFinalizacion = horaFinalizacion;
    }

    public String getHoraFinalizacion() {
        return horaFinalizacion;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Date getFechaSolicitud() {
        return fechaSolicitud;
    }

    public void setFechaSolicitud(Date fechaSolicitud) {
        this.fechaSolicitud = fechaSolicitud;
    }

    public Date getFechaFinalizacion() {
        return fechaFinalizacion;
    }

    public void setFechaFinalizacion(Date fechaFinalizacion) {
        this.fechaFinalizacion = fechaFinalizacion;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    public String getPaciente() {
        return paciente;
    }

    public void setPaciente(String paciente) {
        this.paciente = paciente;
    }

    public Medicos getMedico() {
        return medico;
    }

    public void setMedico(Medicos medico) {
        this.medico = medico;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Citas)) {
            return false;
        }
        Citas other = (Citas) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "infb.modelo.Citas[id=" + id + "]";
    }

}
